package bytes;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class InputStreamTest3 {

	public static void main(String[] args) throws IOException {
		
		File fod = new File( "src/bytes/InputStreamTest3.java" );
		// 判断 fod 是否存在 且 fod 所表示的路径对应的是个 文件
		if( fod.exists() && fod.isFile() ) {
		
			// 创建字节输入流，用于读取 fod 对应文件
			InputStream in = new FileInputStream( fod ) ; // FileNotFoundException
			
			final byte[] buffer = new byte[ 32 ];

			/*
			while( true ) {
				// 从字节输入流中读取数据到 字节缓冲区 中，并返回 实际读取到的有效字节数
				int n = in.read( buffer );
				if( n == -1 ) { // 如果 read 方法读取到 流 末尾则返回 -1
					break ; // 如果已经到达流末尾，则退出 while 循环
				}
				// 将 字节缓冲区 中的 前 n 个 字节 构造成字符串
				String s = new String( buffer , 0 , n ); // 使用平台默认编码
				System.out.print( s );
			}*/
			
			int n ;
			while( ( n = in.read( buffer ) ) != -1 ) {
				String s = new String( buffer , 0 , n );
				System.out.print( s );
			}
			
			// 关闭输入流
			in.close(); // IOException
		}

	}

}
